var list = [{
        "name": "采矿业",
        "value": "采矿业",
        "class2": [{
                "name": "煤炭开采和洗选业",
                "value": "煤炭开采和洗选业"
            },
            {
                "name": "石油和天然气开采业",
                "value": "石油和天然气开采业"
            },
            {
                "name": "黑色金属矿采选业",
                "value": "黑色金属矿采选业"
            },
            {
                "name": "有色金属矿采选业",
                "value": "有色金属矿采选业"
            },
            {
                "name": "非金属矿采选业",
                "value": "非金属矿采选业"
            },
            {
                "name": "开采专业及辅助性活动",
                "value": "开采专业及辅助性活动"
            },
            {
                "name": "其他采矿业",
                "value": "其他采矿业"
            }
        ]
    },

    {
        "name": "制造业",
        "value": "制造业",
        "class2": [{
                "name": "农副食品加工业",
                "value": "农副食品加工业"
            },
            {
                "name": "食品制造业",
                "value": "食品制造业"
            },
            {
                "name": "酒、饮料和精制茶制造业",
                "value": "酒、饮料和精制茶制造业"
            },
            {
                "name": "烟草制品业",
                "value": "烟草制品业"
            },
            {
                "name": "纺织业",
                "value": "纺织业"
            },
            {
                "name": "纺织服装、服饰业",
                "value": "纺织服装、服饰业"
            },
            {
                "name": "皮革、毛皮、羽毛及其制品和制鞋业",
                "value": "皮革、毛皮、羽毛及其制品和制鞋业"
            }
        ]
    }
];


var _columns = [{
        checkbox: true
    },
    {
        field: 'id',
        title: '标示符'
    },
    {
        title: '序号',
        field: 'showId',
        formatter: function (value, row, index) {
            return index + 1;
        }
    },
    {
        field: 'createdAt',
        title: '测试日期',
        hidden: true
    }, //2018-08-08 12:15:40
    {
        field: 'createdTime',
        title: '测试日期',
        formatter: function (value, row, index) {
            var e = (row.createdAt).substring(0, 10);
            return e;
        }
    },
    {
        field: 'companyName',
        title: '企业名称'
    },
    //{field: 'companyClass', title: '所属行业'},
    //{field: 'class1', title: '所属行业(大类)'},
    {
        field: 'class2',
        title: '所属行业'
    },
    {
        field: 'userName',
        title: '创建人'
    },
    {
        field: 'operate',
        title: '操作',
        formatter: function (value, row, index) {
            var e = '<a href="#" mce_href="#" onclick="edit(\'' + row.id + '\',\''+ row.companyName + '\')"><i class="fa fa-edit" ></i>查看详情</a>';
            return e;
        }
    }

]


var TableInit = function () {
    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function () {
        $('#data_table').bootstrapTable({
            url: '/label_water_bala/select', //请求后台的URL（*）
            method: 'get', //请求方式（*）
            toolbar: '#toolbar', //工具按钮用哪个容器
            cache: false, //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true, //是否显示分页（*）
            queryParams: oTableInit.queryParams, //传递参数（*）
            sidePagination: "client", //分页方式：client客户端分页，server服务端分页（*）
            pageNumber: 1, //初始化加载第一页，默认第一页
            pageSize: 10, //每页的记录行数（*）
            pageList: [10, 25, 50, 100], //可供选择的每页的行数（*）
            showColumns: true, //是否显示所有的列
            showRefresh: true, //是否显示刷新按钮
            clickToSelect: true, //是否启用点击选中行
            uniqueId: "id", //每一行的唯一标识，一般为主键列
            columns: _columns,
        });
    };

    //得到查询的参数
    oTableInit.queryParams = function (params) {
        var temp = { //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
            limit: params.limit, //页面大小
            offset: params.offset, //页码
        };
        return temp;
    };
    return oTableInit;
};


var ButtonInit = function () {
    var oInit = new Object();

    oInit.Init = function () {
        //初始化页面上面的按钮事件
        //新增按钮
        $("#btn_add").click(function () {
            selectInit();
            toClass2();
            //初始化
            $('#newCompanyName').val('');
            $('#newCompanyClass').val('');

            $('#new_data').modal();
            //时间组件加载
            $('#newCreatedAt').val(getdate())
            $('#newCreatedAt').datetimepicker({
                minView: "month", //选择日期后，不会再跳转去选择时分秒 
                language: 'zh-CN',
                format: 'yyyy-mm-dd',
                todayBtn: true, //今日按钮
                autoclose: true, //当选择一个日期之后是否立即关闭此日期时间选择器。
                endDate: new Date(), //结束日期为当前日期
            });
        });

        //编辑按钮
        $("#btn_edit").click(function () {
            var arrselections = $("#data_table").bootstrapTable('getSelections');
            if (arrselections.length > 1) {
                bootoast({
                    message: '只能选择一行进行编辑',
                    position: 'top',
                    type: 'warning',
                    timeout: 1.5,
                });
                return;
            }
            if (arrselections.length <= 0) {
                bootoast({
                    message: '请选择有效数据',
                    position: 'top',
                    type: 'warning',
                    timeout: 1.5,
                });
                return;
            }
            editSelectInit();

            $('#editCompanyName').val(arrselections[0]['companyName']);
            //$('#editCompanyClass').val(arrselections[0]['companyClass']);

            $('#edit_class1').val(arrselections[0]['class1']);
            editGetClass2();
            $('#edit_class2').val(arrselections[0]['class2']);
            $('#editCreatedAt').val((arrselections[0]['createdAt']).substring(0, 10))
            $('#editCreatedAt').datetimepicker({
                minView: "month", //选择日期后，不会再跳转去选择时分秒 
                language: 'zh-CN',
                format: 'yyyy-mm-dd',
                todayBtn: true, //今日按钮
                autoclose: true, //当选择一个日期之后是否立即关闭此日期时间选择器。
                endDate: new Date(), //结束日期为当前日期
                //startDate: new Date("2017/6/15"),  //开始时间
            });

            $('#edit_data').modal()
        });

        // 删除按钮
        $("#btn_delete").click(function () {
            var arrselections = $("#data_table").bootstrapTable('getSelections');
            if (arrselections.length <= 0) {
                bootoast({
                    message: '请选择有效数据',
                    position: 'top',
                    type: 'warning',
                    timeout: 1.5,
                });
                return;
            }
            let values = [];
            for (var i = 0; i < arrselections.length; i++)
                values.push(arrselections[i].id);
            bootbox.confirm({
                message: "确认要删除选择的数据吗？",
                locale: 'zh_CN',
                title: '操作提示',
                callback: function (result) {
                    if (result) {
                        $.ajax({
                            type: "post",
                            url: "/label_water_bala/delete",
                            data: JSON.stringify(values),
                            contentType: "application/json",
                            success: function (data) {
                                if (data['status'] == "success") {
                                    bootoast({
                                        message: '删除成功',
                                        position: 'top',
                                        type: 'success',
                                        timeout: 1.5,
                                    });
                                    $("#data_table").bootstrapTable('refresh');
                                } else {
                                    bootoast({
                                        message: '删除失败\n' + data['msg'],
                                        position: 'top',
                                        type: 'danger',
                                        timeout: 1.5,
                                    });
                                }
                            }
                        });
                    }
                }
            })

        });


        //新增框内的提交
        $('#new_data_submit').on('click', function () {
            var createdAt = $('#newCreatedAt').val()
            var companyName = $('#newCompanyName').val()
            var companyClass = $('#newCompanyClass').val()
            var class1 = $('#new_class1').val();
            var class2 = $('#new_class2').val();

            //校验
            if (fieldIsEmpty(companyName, '企业名称不能为空', '') ||
                fieldIsEmpty(class1, '门类 不能为空', '') ||
                fieldIsEmpty(class2, '所属行业 不能为空', '')) {
                return false;
            }

            $.ajax({
                type: "get",
                url: "/label_water_bala/insert",
                data: {
                    'createdAt': createdAt,
                    'companyName': companyName,
                    'class1': class1,
                    'class2': class2
                },
                success: function (data) {
                    if (data['status'] == "success") {
                        bootoast({
                            message: '插入成功',
                            position: 'top',
                            type: 'success',
                            timeout: 2,
                        });
                        $("#new_data").modal('hide');
                        $('#newCreatedAt').val(getdate())
                        $('#newCompanyName').val("")
                        $('#newCompanyClass').val("")
                        $("#data_table").bootstrapTable('refresh');
                    } else {
                        bootoast({
                            message: '插入失败\n' + data['msg'],
                            position: 'top',
                            type: 'danger',
                            timeout: 2,
                        });
                    }
                },
                error: function () {
                    bootoast({
                        message: '通讯异常',
                        position: 'top',
                        type: 'danger',
                        timeout: 1.5,
                    });
                }
            });
        });

        //编辑框内的提交
        $('#edit_data_submit').click(function () {
            var values = []
            var id = $("#data_table").bootstrapTable('getSelections')[0]['id'];
            values.push(id)
            values.push($('#editCreatedAt').val());

            if (fieldIsEmpty($('#editCompanyName').val(), '企业名称不能为空', '')) {
                return false;
            } //判断校验
            values.push($('#editCompanyName').val());
            values.push($('#edit_class1').val());
            values.push($('#edit_class2').val());
            $.ajax({
                type: "post",
                url: "/label_water_bala/update",
                data: JSON.stringify(values),
                contentType: "application/json",
                success: function (data) {
                    if (data['status'] == "success") {
                        bootoast({
                            message: '修改成功',
                            position: 'top',
                            type: 'success',
                            timeout: 2,
                        });
                        $("#edit_data").modal('hide');
                        $("#data_table").bootstrapTable('refresh');
                    } else {
                        bootoast({
                            message: '修改失败\n' + data['msg'],
                            position: 'top',
                            type: 'danger',
                            timeout: 2,
                        });
                    }
                },
                error: function () {
                    bootoast({
                        message: '通讯异常',
                        position: 'top',
                        type: 'danger',
                        timeout: 1.5,
                    });
                }
            });
        });
        //搜索按钮
        $('#btn_search').click(function () {
            $('#search_content').val("");
            $('#search_data').modal();
        });

        //搜索框提交
        //搜索框内的提交
        $('#search_data_submit').click(function () {
            var ids = [];
            var searchContent = $('#search_content').val();
            var data = $('#data_table').bootstrapTable('getData', false); //获取所有数据
//               console.log("data: ")
//               console.log(data)
            for (var i = 0; i < data.length; i++) {
                var flag = false;
                for (var prop in data[i]) {
                    if (prop == 'class2' || prop == 'companyName' || prop == 'userName' || prop == 'createdAt') {
                        if (String(data[i][prop]).indexOf(String(searchContent)) != -1) {
                            //alert(String(data[i][prop]));
                            flag = true;
                            break;
                        }
                    }
                }
                if (!flag) {
                    ids.push(parseInt(data[i]['id']));
                }
            }
            $('#data_table').bootstrapTable('remove', {
                'field': 'id',
                'values': ids
            });
            $('#search_data').modal('hide');
        });
    };

    return oInit;
};

var hasPermission = function () {
    queryPermission('水平衡测试', '新增', 'btn_add')
queryPermission('水平衡测试', '编辑', 'btn_edit')
queryPermission('水平衡测试', '删除', 'btn_delete')
}

$(function () {
    hasPermission();
    //1.初始化Table
    var oTable = new TableInit();
    oTable.Init();

    //2.初始化Button的点击事件
    var oButtonInit = new ButtonInit();
    oButtonInit.Init();
    //3.隐藏列
    $('#data_table').bootstrapTable('hideColumn', 'createdAt');
    $('#data_table').bootstrapTable('hideColumn', 'id');

});

//小函数
//获取当前时期 yyyy-mm-dd
function getdate() {
    var date = new Date();
    var mon = date.getMonth() + 1; //getMonth()返回的是0-11，则需要加1
    if (mon <= 9) { //如果小于9的话，则需要加上0
        mon = "0" + mon;
    }
    var day = date.getDate(); //getdate()返回的是1-31，则不需要加1
    if (day <= 9) { //如果小于9的话，则需要加上0
        day = "0" + day;
    }
    var date_info = date.getFullYear() + "-" + mon + "-" + day;
    return date_info;
}

//临时变量
var label_water_bala_companyId; //company_id
var label_water_bala_companyName; //company_id
//单行函数跳转
function edit(id,name) {
    label_water_bala_companyId = id;
    label_water_bala_companyName = name;
    console.log(name);
    //console.log(id);
    $('#page-wrapper').load('pages/label_entity_water_bala.html');
}

//将所属行业大类加载到选择框
function selectInit() {
    var class1 = document.getElementById("new_class1");
    class1.options.length = 0;
    for (var e in list) {
        var opt_1 = new Option(list[e].name, list[e].value);
        class1.add(opt_1);
    }
}


//根据所属行业(大类)，选择显示在所属行业（小类）选择框的数据
function toClass2() {
    var class1 = document.getElementById("new_class1");
    var class2 = document.getElementById("new_class2");
    var class1Value = class1.value;

    class2.options.length = 0;

    for (var e in list) {
        if (list[e].value == class1Value) {
            for (var p in list[e].class2) {
                var opt_2 = new Option(list[e].class2[p].name, list[e].class2[p].value);
                class2.add(opt_2);
            }
            break;
        }
    }
    $('#new_class2').trigger("change");
}

function newClass2Check() {
    var inputClass1 = $('#new_class1').val();
    if (inputClass1 == "" || inputClass1 == null) {
        alert("请先输入门类");
    }
}

function editClass2Check() {
    var inputClass1 = $('#edit_class1').val();
    if (inputClass1 == "" || inputClass1 == null) {
        alert("请先选择门类");
    }
}

function editGetClass2() {
    var class1 = document.getElementById("edit_class1");
    var class2 = document.getElementById("edit_class2");
    var class1Value = class1.value;
    class2.options.length = 0;

    for (var e in list) {
        if (list[e].value == class1Value) {
            for (var p in list[e].class2) {
                var opt_2 = new Option(list[e].class2[p].name, list[e].class2[p].value);
                class2.add(opt_2);
            }
            break;
        }
    }
}


//编辑时，将所属行业大类加载到选择框
function editSelectInit() {
    var class1 = document.getElementById("edit_class1");
    class1.options.length = 0;
    for (var e in list) {
        var opt_1 = new Option(list[e].name, list[e].value);
        class1.add(opt_1);
    }
}